var express = require('express');
var router = express.Router();
var mononose = require('mongoose');// 此处需要操作数据库，因此引入mongoose
var Goods = require('../models/goods'); // 引入需要加载的模型表

/* 连接mongoDB数据库 */
mononose.connect('mongodb://127.0.0.1:27017/dumall');
mononose.connection.on("connected", function () {
  console.log('success')
});
mononose.connection.on("error", function () {
  console.log('error')
});
mononose.connection.on("disconnected", function () {
  console.log('disconnected')
});

/* 查询商品列表数据 */
router.get('/list', function(req, res, next) {
  // res.send('goods');
  let page = parseInt(req.param("page"));// 获取url中page的参数
  let pageSize = parseInt(req.param("pageSize"));
  let sort = parseInt(req.param("sort"));
  let skip = (page - 1)*pageSize;
  let priceGt='';let priceLte='';
  let params = {};
  let priceLevel = req.param("priceLevel");
  if (priceLevel!='all'){// 若存在价格级别参数
    switch (priceLevel){ // 判断价格级别参数
      case "0": priceGt = 0;priceLte = 100;break;
      case "1": priceGt = 500;priceLte = 1000;break;
      case "2": priceGt = 1000;priceLte = 1500;break;
      case "3": priceGt = 1500;priceLte = 5000;break;
    }
    params = {
      salePrice: {
        $gt:priceGt,
        $lt:priceLte
      }
    }
  }
  let goodsModel = Goods.find(params).skip(skip).limit(pageSize);// 获取传参之后的新表（后端数据）
  goodsModel.sort({'salePrice':sort});// 对新表（后端数据）进行排序

  goodsModel.exec({},function (err,doc) { // doc是查询到的文档
    if(err){
      res.json({
        status: "1",
        msg: err.message
      })
    } else{
      res.json({
        status: "0",
        msg: '',
        result: {
          count: doc.length,
          list: doc
        }
      })
    }
  })
});

/* 加入到购物车 */
router.post('/addCart',function (req,res,next) {
  var userId = '100000077',productId = req.body.productId; // post提交中的参数需要用req.bodu来获取
  var User = require('../models/user');
  User.findOne({userId: userId}, function (err, userDoc) { // 在用户表中查找id为userId的用户
    if(err){
      res.json({
        status: "1",
        msg: err.message
      })
    }else{
      if(userDoc){
        let goodsItem = '';
        userDoc.cartList.forEach(function (item) {
          if(item.productId == productId){// 若是在购物车中已经存在该商品
            goodsItem = item;
            item.productNum++;// 该商品数量+1
          }
        });
        if(goodsItem){// 在购物车中已经存在该商品，直接保存
          userDoc.save(function (err2, doc2) {
            if(err2){
              res.json({
                status: "1",
                msg: err2.message
              })
            } else{
              res.json({
                status: "0",
                msg: '',
                result: 'success'
              })
            }
          })
        }else{// 在购物车中未存在该商品，执行添加操作
          Goods.findOne({productId: productId},function (err1, doc) { //在商品表中查找id为productId的商品
            if(err1){
              res.json({
                status: "1",
                msg: err1.message
              })
            } else{
              doc.productNum = 1;
              doc.checked = 1;
              userDoc.cartList.push(doc); // 把查找到的商品push进该用户的cartList中
              userDoc.save(function (err2, doc2) { // 保存
                if(err2){
                  res.json({
                    status: "1",
                    msg: err2.message
                  })
                } else{
                  res.json({
                    status: "0",
                    msg: '',
                    result: 'success'
                  })
                }
              })
            }
          })
        }
      }
    }
  })
})
module.exports = router;
